//package com.origin.learn.flume.service;
//
//import com.origin.learn.flume.annotation.FlumeComponentType;
//import com.origin.learn.flume.bean.*;
//
//import java.lang.reflect.Field;
//import java.util.List;
//import java.util.Properties;
//
///**
// * @Description:
// * @Date: 2020/1/8
// * @Time: 14:05
// * @Created by:   dingtao
// * @Modified by:
// * @Modified at:
// */
//public interface Agent {
////    boolean generateAgentProperties();
//
//    /**
//     * 生成Flume agent配置项
//     * @return
//     */
//    boolean generateAgentProperties();
//
//    /**
//     * 创建component的Flume配置项
//     * @param component
//     * @return
//     */
//    boolean generateComponentProperties(FlumeComponent component);
//
////    /**
////     * 生成source组件的配置项
////     * @param source
////     * @return
////     */
////    boolean generateSourceProperties(FlumeSource source);
////
////    /**
////     * 生成channel组件的配置项
////     * @param channel
////     * @return
////     */
////    boolean generateChannelProperties(FlumeChannel channel);
////
////    /**
////     * 生成sink组件的配置项
////     * @param sink
////     * @return
////     */
////    boolean generateSinkProperties(FlumeSink sink);
//
//    boolean writePropertyFile(String path);
//
//
//    /**
//     * 获取agent实例
//     * @return
//     */
//    FlumeAgent agent();
//
//    /**
//     * 获取Flume agent的source组件列表
//     * @return
//     */
//    List<FlumeSource> sourceList();
//
//    /**
//     * 获取Flume agent的channel组件列表
//     * @return
//     */
//    List<FlumeChannel> channelList();
//
//    /**
//     * 获取Flume agent的sink组件列表
//     * @return
//     */
//    List<FlumeSink> sinkList();
//
//    /**
//     * 获取Flume agent的Property配置实例
//     * @return
//     */
//    Properties agentProperty();
//}
